home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / share / aclocal / libreiser4.m4 < prev    next >
Text File  |  2006-01-09  |  3KB  |  95 lines

  1. # This file is a part of reiser4progs package
  2. # Copyright (C) 2001, 2002, 2003 by Hans Reiser, licensing governed by
  3. # reiser4progs/COPYING.
  4.  
  5. dnl Usage:
  6. dnl AC_CHECK_LIBREISER4([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
  7. dnl
  8. dnl Example:
  9. dnl AC_CHECK_LIBREISER4(0.3.0, , [AC_MSG_ERROR([libreiser4 >= 0.3.0 not installed - please install first])])
  10. dnl
  11. dnl Adds the required libraries to $REISER4_LIBS and does an
  12. dnl AC_SUBST(REISER4_LIBS)
  13.  
  14. AC_DEFUN([AC_CHECK_LIBREISER4],
  15. [
  16.  
  17. dnl save LIBS
  18. saved_LIBS="$LIBS"
  19.  
  20. dnl Check for headers and library
  21. AC_CHECK_HEADER(reiser4/libreiser4.h, ,
  22.     [AC_MSG_ERROR([<reiser4/libreiser4.h> not found; install reiser4progs])] 
  23. $3)
  24.  
  25. AC_CHECK_LIB(reiser4, reiser4_fs_open, ,
  26.     [AC_MSG_ERROR([libreiser4 not found; install reiser4progs available at \
  27.     http://www.namesys.com/snapshots])]
  28. $3)
  29.  
  30. AC_MSG_CHECKING(for libreiser4 version >= $1)
  31.  
  32. AC_TRY_LINK_FUNC(libreiser4_version,,
  33.     AC_MSG_RESULT(failed)
  34.     AC_MSG_ERROR([libreiser4 can't execute test]))
  35.  
  36. dnl Get major, minor, and micro version from arg MINIMUM-VERSION
  37. libreiser4_config_major_version=`echo $1 | \
  38.     sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
  39. libreiser4_config_minor_version=`echo $1 | \
  40.     sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
  41. libreiser4_config_micro_version=`echo $1 | \
  42.     sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
  43.  
  44. dnl Compare MINIMUM-VERSION with libreiser4 version
  45. AC_TRY_RUN([
  46. #include <stdio.h>
  47. #include <stdlib.h>
  48. #include <reiser4/libreiser4.h>
  49.  
  50. int main() {
  51.     int major, minor, micro;
  52.     const char *version;    
  53.     
  54.     if ( !(version = libreiser4_version()) )
  55.     exit(1);
  56.         
  57.     if (sscanf(version, "%d.%d.%d", &major, &minor, µ) != 3) {
  58.     printf("%s, bad version string\n", version);
  59.     exit(1);
  60.     }
  61.     
  62.     if ((major >= $libreiser4_config_major_version) &&
  63.     ((major == $libreiser4_config_major_version) && 
  64.     (minor >= $libreiser4_config_minor_version)) &&
  65.     ((major == $libreiser4_config_major_version) && 
  66.     (minor == $libreiser4_config_minor_version) && 
  67.     (micro >= $libreiser4_config_micro_version))) 
  68.     {
  69.     return 0;
  70.     } else {
  71.     printf("\nAn old version of libreiser4 (%s) was found.\n",
  72.         version);
  73.     printf("You need a version of libreiser4 newer than or "
  74.             "equal to %d.%d.%d.\n", $libreiser4_config_major_version, 
  75.         $libreiser4_config_minor_version, $libreiser4_config_micro_version);
  76.  
  77.     printf("You can get it at http://www.namesys.com/snapshots\n");
  78.     return 1;
  79.     }
  80. }
  81. ], 
  82.     AC_MSG_RESULT(yes),
  83.     AC_MSG_RESULT(no) ; $3,
  84.     [echo $ac_n "cross compiling; assumed OK... $ac_c"])
  85.  
  86. dnl restore orignial LIBS and set @REISER4_LIBS@
  87. REISER4_LIBS="$LIBS"
  88. LIBS="$saved_LIBS"
  89. AC_SUBST(REISER4_LIBS)
  90.  
  91. dnl Execute ACTION-IF-FOUND
  92. $2
  93.  
  94. ])
  95.